Skip to content

创建TCP客户端 - TcpClientCreate

函数简介

创建TCP客户端(基于回调的事件驱动模式)。

接口名称

TcpClientCreate

DLL调用

c
int64_t TcpClientCreate(int64_t instance, TcpClientCallback callback, int64_t user_data, int32_t enable_packet_protocol);

参数说明

参数名类型说明
instance长整数型OLAPlug对象的指针,由 CreateCOLAPlugInterFace 接口生成。
callbackTcpClientCallback事件回调函数
user_data长整数型用户自定义数据,会在回调时传回
enable_packet_protocol整数型是否启用消息分包协议:1=启用(推荐),0=禁用(原始模式)

回调函数类型定义

c
void TcpClientCallback(int64_t client_handle, int32_t event_type, int64_t data, int32_t data_len, int64_t user_data);
参数名类型说明
client_handle长整数型客户端句柄
event_type整数型事件类型(详见下方事件类型表)
data长整数型数据指针(仅当 event_type=2 时有效)
data_len整数型数据长度(仅当 event_type=2 时有效)
user_data长整数型用户自定义数据,由创建客户端时传入

事件类型说明

event_type事件名称说明
0连接成功成功连接到服务器
1连接失败连接服务器失败
2接收数据接收到数据(data指向数据,data_len为长度)
3连接断开与服务器的连接已断开
4发送完成数据发送完成

示例

SDK 调用

cpp
#include "OLAPlugServer.h"

OLAPlugServer ola;
// 创建 TCP 客户端,回调中处理连接/收包事件
long client = ola.TcpClientCreate(nullptr, 0, 0);
csharp
using OLAPlug;

var ola = new OLAPlugServer();
// 创建 TCP 客户端,回调中处理连接/收包事件
long client = ola.TcpClientCreate(nullptr, 0, 0);
python
from OLAPlugServer import OLAPlugServer

ola = OLAPlugServer()
# 创建 TCP 客户端,回调中处理连接/收包事件
client = ola.TcpClientCreate(nullptr, 0, 0)
java
import com.olaplug.OLAPlugServer;

OLAPlugServer ola = new OLAPlugServer();
// 创建 TCP 客户端,回调中处理连接/收包事件
long client = ola.TcpClientCreate(nullptr, 0, 0);
cpp
var ola = com("OlaPlug.OlaSoft")
// 创建 TCP 客户端,回调中处理连接/收包事件
var client = ola.TcpClientCreate(nullptr, 0, 0)
vbscript
Set ola = CreateObject("OlaPlug.OlaSoft")
' 创建 TCP 客户端,回调中处理连接/收包事件
client = ola.TcpClientCreate(nullptr, 0, 0)
text
.局部变量 ola, OLAPlug
ola.创建 ()
' 创建 TCP 客户端,回调中处理连接/收包事件
client = ola.TcpClientCreate(nullptr, 0, 0)
aardio
import OLAPlugServer;
var ola = OLAPlugServer();
// 创建 TCP 客户端,回调中处理连接/收包事件
var client = ola.TcpClientCreate(nullptr, 0, 0);
text
变量 ola <类型 = OLAPlugServer>
ola = 新建 OLAPlugServer
// 创建 TCP 客户端,回调中处理连接/收包事件
长整数 client = ola.TcpClientCreate(nullptr, 0, 0)
cpp
#include "OLAPlugServer.h"

OLAPlugServer ola;
// 创建 TCP 客户端,回调中处理连接/收包事件
long client = ola.TcpClientCreate(nullptr, 0, 0);

原生 DLL 调用

cpp
long instance = CreateCOLAPlugInterFace();
long client = TcpClientCreate(instance, nullptr, 0, 0);
csharp
long instance = CreateCOLAPlugInterFace();
long client = TcpClientCreate(instance, nullptr, 0, 0);
python
from ctypes import CDLL, c_int, c_int64, create_string_buffer

ola = CDLL("OLAPlug_x64.dll")
ola.CreateCOLAPlugInterFace.restype = c_int64
instance = ola.CreateCOLAPlugInterFace()
client = TcpClientCreate(instance, nullptr, 0, 0)

返回值

长整数型,返回客户端句柄,失败返回0。

注意事项

  • 消息分包协议(enable_packet_protocol=1):格式为[4字节长度前缀(小端序)][消息体],自动解决TCP粘包问题,推荐用于自定义协议通信
  • 原始模式(enable_packet_protocol=0):不添加任何协议头,可能出现粘包问题,适用于与第三方系统通信
  • 回调函数在独立线程中执行,注意线程安全
  • 使用完毕后需要调用 TcpClientDestroy 释放资源